/**
**************************************************************************************
*Palisma - Secrets of the Illuminati is an open-source 2D RPG                        *
*Copyright (C) 2006, Tony Sparks                                                     *
*                                                                                    *
*This library is free software; you can redistribute it and/or                       *
*modify it under the terms of the GNU Lesser General Public                          *
*License as published by the Free Software Foundation; either                        *
*version 2.1 of the License, or (at your option) any later version.                  *
*                                                                                    *
*This library is distributed in the hope that it will be useful,                     *
*but WITHOUT ANY WARRANTY; without even the implied warranty of                      *
*MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                   *
*Lesser General Public License for more details.                                     *
*                                                                                    *
*You should have received a copy of the GNU Lesser General Public                    *
*License along with this library; if not, write to the Free Software                 *
*Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA      *
**************************************************************************************
*/
#pragma once


/**
 * File format
 */
enum ImageType {
    TGA,
    BMP,
    PCX,
    JPEG,
    GIF
};

/**
 * Image 
 */
struct Image
{
    // width and height
    int width;
    int height;

    // x and y coord
    float texWidth;
    float texHeight;

    // for subimages
    int   rows;
    int   columns;

    float     subWidth;
    float     subHeight;

    // texture number
    unsigned int textNum;
    // id for tracking
    int id;
    // path name
    std::string name;
    
    // image type
    ImageType imageType;

    // Image data, remember to delete
    // once loaded
    unsigned char* data;

    unsigned char bitDepth;

    int nBPP;
	/** Clear the image data */
	void Delete() {
		if ( data )
		{
			delete [] data;
			data = NULL;
		}
	}
    virtual ~Image() {};

};